Vigenere

	Throughout all of European history, one of the
most sophisticated ciphers cryptologists came up with
was the Vigenere Cipher, it wasn't until the Great War (1914-1918)
that someone was able to crack it, and even then it is not
easy.  
	When you select ENCRYPT on the MAIN MENU you
can encrypt any plaintext.  Just enter the plaintext
and the keyword at their respective prompts and the
program will do the work.  When you select DECRYPT on
the MAIN MENU this program will decrypt any ciphertext
using the same keyword used for encryption.  Just enter
the ciphertext and the keyword at their respective prompts.
This program also includes a help.  
	This programs two major faults are that it takes
up just over 10000 bytes of space on the calculator and
that it runs very slow.  I encourage any of you who can
to produce a smaller and faster one.  

You can upload this program into your calculator
with the TI-GRAPH LINK, however if you do not
own one I have included the code below:

\start83\
\comment=Program file dated 08/19/00, 11:50
\name=VIGENERE
\file=C:\VIGENERE.TXT
Lbl S
ClrHome
Menu("MAIN MENU","ENCRYPT",EN,"DECRYPT",DE,"HELP",H,"EXIT",E)
Lbl E
Stop
Lbl H
ClrDraw
Text(0,0,"TO ENCRYPT THE PLAINTEXT,
Text(6,0,"GO TO ENCRYPT ON THE MAIN
Text(12,0,"MENU. ENTER PLAINTEXT AND
Text(18,0,"KEY AT APPROPRIATE
Text(24,0,"PROMPTS, THERE ARE CERTAIN
Text(30,0,"RESTRICTIONS ON WHAT MAY
Text(36,0,"OR MAY NOT BE IN PLAINTEXT
Text(42,0,"AND KEY, THEY WILL BE
Text(48,0,"DISCUSSED LATER.
Pause :ClrDraw
Text(0,0,"THIS MACHINE RUNS VERY
Text(6,0,"SLOWLY SO DO NOT BE"
Text(12,0,"SUPRISED BY THIS. WHEN"
Text(18,0,"FINISHED, THE CALC WILL"
Text(24,0,"DISPLAY THE CIPHERTEXT AND
Text(30,0,"STORE IT ON Str1."
Pause :ClrDraw
Text(0,0,"TO DECRYPT THE CIPHERTEXT,
Text(6,0,"GO TO DECYRPT ON THE MAIN
Text(12,0,"MENU. ENTER CIPHERTEXT AND
Text(18,0,"KEY AT APPROPRIATE
Text(24,0,"PROMPTS, AGAIN THERE ARE
Text(30,0,"CERTAIN RESTRICTIONS
Text(36,0,"CONCERNING WHAT MAY OR MAY
Text(42,0,"NOT BE IN THE CIPHERTEXT
Text(48,0,"AND KEY, THEY WILL BE
Text(54,0,"DISCUSSED LATER.
Pause :ClrDraw
Text(0,0,"THIS MACHINE RUNS VERY
Text(6,0,"SLOWLY, DO NOT BE SUPRISED
Text(12,0,"BY THIS. WHEN THE CALC IS
Text(18,0,"FINISHED, THE PLAINTEXT
Text(24,0,"WILL BE DISPLAYED AND
Text(30,0,"STORED ON Str1."
Pause :ClrDraw
Text(0,0,"THE KEYWORD IS VERY
Text(6,0,"IMPORTANT. YOU MUST NOT
Text(12,0,"FORGET IT. IF YOU DO NOT
Text(18,0,"HAVE THE SAME EXACT KEY
Text(24,0,"USED TO ENCRYPT THE
Text(30,0,"PLAINTEXT, YOU WILL NOT BE
Text(36,0,"ABLE TO DECIPHER IT. THE KEY
Text(42,0,"WILL NOT BE INCLUDED WITH
Text(48,0,"THE CIPHERTEXT."
Pause :ClrDraw
Text(0,0,"THE RESTRICTIONS ON WHAT
Text(6,0,"MAY OR MAY NOT BE USED IN THE
Text(12,0,"PLAINTEXT, KEYWORD, AND
Text(18,0,"CIPHERTEXT ARE AS FOLLOWS:
Text(24,0,"ONLY UPPERCASE LETTERS OF
Text(30,0,"THE ALPHABET ARE TO BE
Text(36,0,"USED, NO LOWERCASE
Text(42,0,"LETTERS, NO NUMERALS, NO
Text(48,0,"PUNCTUATION, NO SPACES,
Text(54,0,"AND NO OTHER SYMBOLS."
Pause :ClrDraw
Goto S
Lbl DE
ClrHome
SetUpEditor 
Input "CIPHERTEXT:",Str1
Input "KEY:",Str2
If length(Str1)>999 or length(Str2)>999:Goto DE
For(T,1,length(Str1))
If sub(Str1,T,1)\!=\"A" and sub(Str1,T,1)\!=\"B" and sub(Str1,T,1)\!=\"C" and sub(Str1,T,1)\!=\"D" and sub(Str1,T,1)\!=\"E" and sub(Str1,T,1)\!=\"F" and sub(Str1,T,1)\!=\"G" and sub(Str1,T,1)\!=\"H" and sub(Str1,T,1)\!=\"I" and sub(Str1,T,1)\!=\"J" and sub(Str1,T,1)\!=\"K" and sub(Str1,T,1)\!=\"L" and sub(Str1,T,1)\!=\"M" and sub(Str1,T,1)\!=\"N" and sub(Str1,T,1)\!=\"O" and sub(Str1,T,1)\!=\"P" and sub(Str1,T,1)\!=\"Q" and sub(Str1,T,1)\!=\"R" and sub(Str1,T,1)\!=\"S" and sub(Str1,T,1)\!=\"T" and sub(Str1,T,1)\!=\"U" and sub(Str1,T,1)\!=\"V" and sub(Str1,T,1)\!=\"W" and sub(Str1,T,1)\!=\"X" and sub(Str1,T,1)\!=\"Y" and sub(Str1,T,1)\!=\"Z"
Then
Goto DE
End
End
For(T,1,length(Str2))
If sub(Str2,T,1)\!=\"A" and sub(Str2,T,1)\!=\"B" and sub(Str2,T,1)\!=\"C" and sub(Str2,T,1)\!=\"D" and sub(Str2,T,1)\!=\"E" and sub(Str2,T,1)\!=\"F" and sub(Str2,T,1)\!=\"G" and sub(Str2,T,1)\!=\"H" and sub(Str2,T,1)\!=\"I" and sub(Str2,T,1)\!=\"J" and sub(Str2,T,1)\!=\"K" and sub(Str2,T,1)\!=\"L" and sub(Str2,T,1)\!=\"M" and sub(Str2,T,1)\!=\"N" and sub(Str2,T,1)\!=\"O" and sub(Str2,T,1)\!=\"P" and sub(Str2,T,1)\!=\"Q" and sub(Str2,T,1)\!=\"R" and sub(Str2,T,1)\!=\"S" and sub(Str2,T,1)\!=\"T" and sub(Str2,T,1)\!=\"U" and sub(Str2,T,1)\!=\"V" and sub(Str2,T,1)\!=\"W" and sub(Str2,T,1)\!=\"X" and sub(Str2,T,1)\!=\"Y" and sub(Str2,T,1)\!=\"Z"
Then
Goto DE
End
End
ClrHome
Output(4,6,"BUSY")
For(T,1,length(Str1))
If sub(Str1,T,1)="A":1\->\L\1\(T)
If sub(Str1,T,1)="B":2\->\L\1\(T)
If sub(Str1,T,1)="C":3\->\L\1\(T)
If sub(Str1,T,1)="D":4\->\L\1\(T)
If sub(Str1,T,1)="E":5\->\L\1\(T)
If sub(Str1,T,1)="F":6\->\L\1\(T)
If sub(Str1,T,1)="G":7\->\L\1\(T)
If sub(Str1,T,1)="H":8\->\L\1\(T)
If sub(Str1,T,1)="I":9\->\L\1\(T)
If sub(Str1,T,1)="J":10\->\L\1\(T)
If sub(Str1,T,1)="K":11\->\L\1\(T)
If sub(Str1,T,1)="L":12\->\L\1\(T)
If sub(Str1,T,1)="M":13\->\L\1\(T)
If sub(Str1,T,1)="N":14\->\L\1\(T)
If sub(Str1,T,1)="O":15\->\L\1\(T)
If sub(Str1,T,1)="P":16\->\L\1\(T)
If sub(Str1,T,1)="Q":17\->\L\1\(T)
If sub(Str1,T,1)="R":18\->\L\1\(T)
If sub(Str1,T,1)="S":19\->\L\1\(T)
If sub(Str1,T,1)="T":20\->\L\1\(T)
If sub(Str1,T,1)="U":21\->\L\1\(T)
If sub(Str1,T,1)="V":22\->\L\1\(T)
If sub(Str1,T,1)="W":23\->\L\1\(T)
If sub(Str1,T,1)="X":24\->\L\1\(T)
If sub(Str1,T,1)="Y":25\->\L\1\(T)
If sub(Str1,T,1)="Z":26\->\L\1\(T)
End
int(length(Str1)/length(Str2))+1\->\Z
" "\->\Str3
For(T,1,Z)
Str3+Str2\->\Str3
End
sub(Str3,2,length(Str3)-1)\->\Str3
sub(Str3,1,length(Str1))\->\Str3
For(T,1,length(Str3))
If sub(Str3,T,1)="A":1\->\L\2\(T)
If sub(Str3,T,1)="B":2\->\L\2\(T)
If sub(Str3,T,1)="C":3\->\L\2\(T)
If sub(Str3,T,1)="D":4\->\L\2\(T)
If sub(Str3,T,1)="E":5\->\L\2\(T)
If sub(Str3,T,1)="F":6\->\L\2\(T)
If sub(Str3,T,1)="G":7\->\L\2\(T)
If sub(Str3,T,1)="H":8\->\L\2\(T)
If sub(Str3,T,1)="I":9\->\L\2\(T)
If sub(Str3,T,1)="J":10\->\L\2\(T)
If sub(Str3,T,1)="K":11\->\L\2\(T)
If sub(Str3,T,1)="L":12\->\L\2\(T)
If sub(Str3,T,1)="M":13\->\L\2\(T)
If sub(Str3,T,1)="N":14\->\L\2\(T)
If sub(Str3,T,1)="O":15\->\L\2\(T)
If sub(Str3,T,1)="P":16\->\L\2\(T)
If sub(Str3,T,1)="Q":17\->\L\2\(T)
If sub(Str3,T,1)="R":18\->\L\2\(T)
If sub(Str3,T,1)="S":19\->\L\2\(T)
If sub(Str3,T,1)="T":20\->\L\2\(T)
If sub(Str3,T,1)="U":21\->\L\2\(T)
If sub(Str3,T,1)="V":22\->\L\2\(T)
If sub(Str3,T,1)="W":23\->\L\2\(T)
If sub(Str3,T,1)="X":24\->\L\2\(T)
If sub(Str3,T,1)="Y":25\->\L\2\(T)
If sub(Str3,T,1)="Z":26\->\L\2\(T)
End
L\1\-L\2\\->\L\3\
ClrList L\1\,L\2\:DelVar Str1:DelVar Str2:DelVar Str3
" "\->\Str4
For(T,1,dim(L\3\))
L\3\(T)+1\->\L\3\(T)
If L\3\(T)<1:L\3\(T)+26\->\L\3\(T)
If L\3\(T)=1:Str4+"A"\->\Str4
If L\3\(T)=2:Str4+"B"\->\Str4
If L\3\(T)=3:Str4+"C"\->\Str4
If L\3\(T)=4:Str4+"D"\->\Str4
If L\3\(T)=5:Str4+"E"\->\Str4
If L\3\(T)=6:Str4+"F"\->\Str4
If L\3\(T)=7:Str4+"G"\->\Str4
If L\3\(T)=8:Str4+"H"\->\Str4
If L\3\(T)=9:Str4+"I"\->\Str4
If L\3\(T)=10:Str4+"J"\->\Str4
If L\3\(T)=11:Str4+"K"\->\Str4
If L\3\(T)=12:Str4+"L"\->\Str4
If L\3\(T)=13:Str4+"M"\->\Str4
If L\3\(T)=14:Str4+"N"\->\Str4
If L\3\(T)=15:Str4+"O"\->\Str4
If L\3\(T)=16:Str4+"P"\->\Str4
If L\3\(T)=17:Str4+"Q"\->\Str4
If L\3\(T)=18:Str4+"R"\->\Str4
If L\3\(T)=19:Str4+"S"\->\Str4
If L\3\(T)=20:Str4+"T"\->\Str4
If L\3\(T)=21:Str4+"U"\->\Str4
If L\3\(T)=22:Str4+"V"\->\Str4
If L\3\(T)=23:Str4+"W"\->\Str4
If L\3\(T)=24:Str4+"X"\->\Str4
If L\3\(T)=25:Str4+"Y"\->\Str4
If L\3\(T)=26:Str4+"Z"\->\Str4
End
sub(Str4,2,length(Str4)-1)\->\Str1
DelVar Str4:DelVar T:DelVar Z
ClrList L\3\
ClrHome
Disp Str1
Pause 
Goto S
Lbl DE
ClrHome
SetUpEditor 
Input "CIPHERTEXT:",Str1
Input "KEY:",Str2
If length(Str1)>999 or length(Str2)>999:Goto DE
For(T,1,length(Str1))
If sub(Str1,T,1)\!=\"A" and sub(Str1,T,1)\!=\"B" and sub(Str1,T,1)\!=\"C" and sub(Str1,T,1)\!=\"D" and sub(Str1,T,1)\!=\"E" and sub(Str1,T,1)\!=\"F" and sub(Str1,T,1)\!=\"G" and sub(Str1,T,1)\!=\"H" and sub(Str1,T,1)\!=\"I" and sub(Str1,T,1)\!=\"J" and sub(Str1,T,1)\!=\"K" and sub(Str1,T,1)\!=\"L" and sub(Str1,T,1)\!=\"M" and sub(Str1,T,1)\!=\"N" and sub(Str1,T,1)\!=\"O" and sub(Str1,T,1)\!=\"P" and sub(Str1,T,1)\!=\"Q" and sub(Str1,T,1)\!=\"R" and sub(Str1,T,1)\!=\"S" and sub(Str1,T,1)\!=\"T" and sub(Str1,T,1)\!=\"U" and sub(Str1,T,1)\!=\"V" and sub(Str1,T,1)\!=\"W" and sub(Str1,T,1)\!=\"X" and sub(Str1,T,1)\!=\"Y" and sub(Str1,T,1)\!=\"Z"
Then
Goto DE
End
End
For(T,1,length(Str2))
If sub(Str2,T,1)\!=\"A" and sub(Str2,T,1)\!=\"B" and sub(Str2,T,1)\!=\"C" and sub(Str2,T,1)\!=\"D" and sub(Str2,T,1)\!=\"E" and sub(Str2,T,1)\!=\"F" and sub(Str2,T,1)\!=\"G" and sub(Str2,T,1)\!=\"H" and sub(Str2,T,1)\!=\"I" and sub(Str2,T,1)\!=\"J" and sub(Str2,T,1)\!=\"K" and sub(Str2,T,1)\!=\"L" and sub(Str2,T,1)\!=\"M" and sub(Str2,T,1)\!=\"N" and sub(Str2,T,1)\!=\"O" and sub(Str2,T,1)\!=\"P" and sub(Str2,T,1)\!=\"Q" and sub(Str2,T,1)\!=\"R" and sub(Str2,T,1)\!=\"S" and sub(Str2,T,1)\!=\"T" and sub(Str2,T,1)\!=\"U" and sub(Str2,T,1)\!=\"V" and sub(Str2,T,1)\!=\"W" and sub(Str2,T,1)\!=\"X" and sub(Str2,T,1)\!=\"Y" and sub(Str2,T,1)\!=\"Z"
Then
Goto DE
End
End
ClrHome
Output(4,6,"BUSY")
For(T,1,length(Str1))
If sub(Str1,T,1)="A":1\->\L\1\(T)
If sub(Str1,T,1)="B":2\->\L\1\(T)
If sub(Str1,T,1)="C":3\->\L\1\(T)
If sub(Str1,T,1)="D":4\->\L\1\(T)
If sub(Str1,T,1)="E":5\->\L\1\(T)
If sub(Str1,T,1)="F":6\->\L\1\(T)
If sub(Str1,T,1)="G":7\->\L\1\(T)
If sub(Str1,T,1)="H":8\->\L\1\(T)
If sub(Str1,T,1)="I":9\->\L\1\(T)
If sub(Str1,T,1)="J":10\->\L\1\(T)
If sub(Str1,T,1)="K":11\->\L\1\(T)
If sub(Str1,T,1)="L":12\->\L\1\(T)
If sub(Str1,T,1)="M":13\->\L\1\(T)
If sub(Str1,T,1)="N":14\->\L\1\(T)
If sub(Str1,T,1)="O":15\->\L\1\(T)
If sub(Str1,T,1)="P":16\->\L\1\(T)
If sub(Str1,T,1)="Q":17\->\L\1\(T)
If sub(Str1,T,1)="R":18\->\L\1\(T)
If sub(Str1,T,1)="S":19\->\L\1\(T)
If sub(Str1,T,1)="T":20\->\L\1\(T)
If sub(Str1,T,1)="U":21\->\L\1\(T)
If sub(Str1,T,1)="V":22\->\L\1\(T)
If sub(Str1,T,1)="W":23\->\L\1\(T)
If sub(Str1,T,1)="X":24\->\L\1\(T)
If sub(Str1,T,1)="Y":25\->\L\1\(T)
If sub(Str1,T,1)="Z":26\->\L\1\(T)
End
int(length(Str1)/length(Str2))+1\->\Z
" "\->\Str3
For(T,1,Z)
Str3+Str2\->\Str3
End
sub(Str3,2,length(Str3)-1)\->\Str3
sub(Str3,1,length(Str1))\->\Str3
For(T,1,length(Str3))
If sub(Str3,T,1)="A":1\->\L\2\(T)
If sub(Str3,T,1)="B":2\->\L\2\(T)
If sub(Str3,T,1)="C":3\->\L\2\(T)
If sub(Str3,T,1)="D":4\->\L\2\(T)
If sub(Str3,T,1)="E":5\->\L\2\(T)
If sub(Str3,T,1)="F":6\->\L\2\(T)
If sub(Str3,T,1)="G":7\->\L\2\(T)
If sub(Str3,T,1)="H":8\->\L\2\(T)
If sub(Str3,T,1)="I":9\->\L\2\(T)
If sub(Str3,T,1)="J":10\->\L\2\(T)
If sub(Str3,T,1)="K":11\->\L\2\(T)
If sub(Str3,T,1)="L":12\->\L\2\(T)
If sub(Str3,T,1)="M":13\->\L\2\(T)
If sub(Str3,T,1)="N":14\->\L\2\(T)
If sub(Str3,T,1)="O":15\->\L\2\(T)
If sub(Str3,T,1)="P":16\->\L\2\(T)
If sub(Str3,T,1)="Q":17\->\L\2\(T)
If sub(Str3,T,1)="R":18\->\L\2\(T)
If sub(Str3,T,1)="S":19\->\L\2\(T)
If sub(Str3,T,1)="T":20\->\L\2\(T)
If sub(Str3,T,1)="U":21\->\L\2\(T)
If sub(Str3,T,1)="V":22\->\L\2\(T)
If sub(Str3,T,1)="W":23\->\L\2\(T)
If sub(Str3,T,1)="X":24\->\L\2\(T)
If sub(Str3,T,1)="Y":25\->\L\2\(T)
If sub(Str3,T,1)="Z":26\->\L\2\(T)
End
L\1\-L\2\\->\L\3\
ClrList L\1\,L\2\:DelVar Str1:DelVar Str2:DelVar Str3
" "\->\Str4
For(T,1,dim(L\3\))
L\3\(T)+1\->\L\3\(T)
If L\3\(T)<1:L\3\(T)+26\->\L\3\(T)
If L\3\(T)=1:Str4+"A"\->\Str4
If L\3\(T)=2:Str4+"B"\->\Str4
If L\3\(T)=3:Str4+"C"\->\Str4
If L\3\(T)=4:Str4+"D"\->\Str4
If L\3\(T)=5:Str4+"E"\->\Str4
If L\3\(T)=6:Str4+"F"\->\Str4
If L\3\(T)=7:Str4+"G"\->\Str4
If L\3\(T)=8:Str4+"H"\->\Str4
If L\3\(T)=9:Str4+"I"\->\Str4
If L\3\(T)=10:Str4+"J"\->\Str4
If L\3\(T)=11:Str4+"K"\->\Str4
If L\3\(T)=12:Str4+"L"\->\Str4
If L\3\(T)=13:Str4+"M"\->\Str4
If L\3\(T)=14:Str4+"N"\->\Str4
If L\3\(T)=15:Str4+"O"\->\Str4
If L\3\(T)=16:Str4+"P"\->\Str4
If L\3\(T)=17:Str4+"Q"\->\Str4
If L\3\(T)=18:Str4+"R"\->\Str4
If L\3\(T)=19:Str4+"S"\->\Str4
If L\3\(T)=20:Str4+"T"\->\Str4
If L\3\(T)=21:Str4+"U"\->\Str4
If L\3\(T)=22:Str4+"V"\->\Str4
If L\3\(T)=23:Str4+"W"\->\Str4
If L\3\(T)=24:Str4+"X"\->\Str4
If L\3\(T)=25:Str4+"Y"\->\Str4
If L\3\(T)=26:Str4+"Z"\->\Str4
End
sub(Str4,2,length(Str4)-1)\->\Str1
DelVar Str4
ClrList L\3\
ClrHome
Disp Str1
Pause 
Goto S
Lbl EN
ClrAllLists
SetUpEditor 
Input "PLAINTEXT:",Str1
Input "KEY:",Str2
For(T,1,length(Str1))
If sub(Str1,T,1)\!=\"A" and sub(Str1,T,1)\!=\"B" and sub(Str1,T,1)\!=\"C" and sub(Str1,T,1)\!=\"D" and sub(Str1,T,1)\!=\"E" and sub(Str1,T,1)\!=\"F" and sub(Str1,T,1)\!=\"G" and sub(Str1,T,1)\!=\"H" and sub(Str1,T,1)\!=\"I" and sub(Str1,T,1)\!=\"J" and sub(Str1,T,1)\!=\"K" and sub(Str1,T,1)\!=\"L" and sub(Str1,T,1)\!=\"M" and sub(Str1,T,1)\!=\"N" and sub(Str1,T,1)\!=\"O" and sub(Str1,T,1)\!=\"P" and sub(Str1,T,1)\!=\"Q" and sub(Str1,T,1)\!=\"R" and sub(Str1,T,1)\!=\"S" and sub(Str1,T,1)\!=\"T" and sub(Str1,T,1)\!=\"U" and sub(Str1,T,1)\!=\"V" and sub(Str1,T,1)\!=\"W" and sub(Str1,T,1)\!=\"X" and sub(Str1,T,1)\!=\"Y" and sub(Str1,T,1)\!=\"Z"
Then
Goto EN
End
End
For(T,1,length(Str2))
If sub(Str2,T,1)\!=\"A" and sub(Str2,T,1)\!=\"B" and sub(Str2,T,1)\!=\"C" and sub(Str2,T,1)\!=\"D" and sub(Str2,T,1)\!=\"E" and sub(Str2,T,1)\!=\"F" and sub(Str2,T,1)\!=\"G" and sub(Str2,T,1)\!=\"H" and sub(Str2,T,1)\!=\"I" and sub(Str2,T,1)\!=\"J" and sub(Str2,T,1)\!=\"K" and sub(Str2,T,1)\!=\"L" and sub(Str2,T,1)\!=\"M" and sub(Str2,T,1)\!=\"N" and sub(Str2,T,1)\!=\"O" and sub(Str2,T,1)\!=\"P" and sub(Str2,T,1)\!=\"Q" and sub(Str2,T,1)\!=\"R" and sub(Str2,T,1)\!=\"S" and sub(Str2,T,1)\!=\"T" and sub(Str2,T,1)\!=\"U" and sub(Str2,T,1)\!=\"V" and sub(Str2,T,1)\!=\"W" and sub(Str2,T,1)\!=\"X" and sub(Str2,T,1)\!=\"Y" and sub(Str2,T,1)\!=\"Z"
Then
Goto EN
End
End
ClrHome
Output(4,6,"BUSY")
For(T,1,length(Str1))
If sub(Str1,T,1)="A":1\->\L\1\(T)
If sub(Str1,T,1)="B":2\->\L\1\(T)
If sub(Str1,T,1)="C":3\->\L\1\(T)
If sub(Str1,T,1)="D":4\->\L\1\(T)
If sub(Str1,T,1)="E":5\->\L\1\(T)
If sub(Str1,T,1)="F":6\->\L\1\(T)
If sub(Str1,T,1)="G":7\->\L\1\(T)
If sub(Str1,T,1)="H":8\->\L\1\(T)
If sub(Str1,T,1)="I":9\->\L\1\(T)
If sub(Str1,T,1)="J":10\->\L\1\(T)
If sub(Str1,T,1)="K":11\->\L\1\(T)
If sub(Str1,T,1)="L":12\->\L\1\(T)
If sub(Str1,T,1)="M":13\->\L\1\(T)
If sub(Str1,T,1)="N":14\->\L\1\(T)
If sub(Str1,T,1)="O":15\->\L\1\(T)
If sub(Str1,T,1)="P":16\->\L\1\(T)
If sub(Str1,T,1)="Q":17\->\L\1\(T)
If sub(Str1,T,1)="R":18\->\L\1\(T)
If sub(Str1,T,1)="S":19\->\L\1\(T)
If sub(Str1,T,1)="T":20\->\L\1\(T)
If sub(Str1,T,1)="U":21\->\L\1\(T)
If sub(Str1,T,1)="V":22\->\L\1\(T)
If sub(Str1,T,1)="W":23\->\L\1\(T)
If sub(Str1,T,1)="X":24\->\L\1\(T)
If sub(Str1,T,1)="Y":25\->\L\1\(T)
If sub(Str1,T,1)="Z":26\->\L\1\(T)
End
int(length(Str1)/length(Str2))+1\->\Z
" "\->\Str3
For(T,1,Z)
Str3+Str2\->\Str3
End
sub(Str3,2,length(Str3)-1)\->\Str3
sub(Str3,1,length(Str1))\->\Str3
For(T,1,length(Str3))
If sub(Str3,T,1)="A":1\->\L\2\(T)
If sub(Str3,T,1)="B":2\->\L\2\(T)
If sub(Str3,T,1)="C":3\->\L\2\(T)
If sub(Str3,T,1)="D":4\->\L\2\(T)
If sub(Str3,T,1)="E":5\->\L\2\(T)
If sub(Str3,T,1)="F":6\->\L\2\(T)
If sub(Str3,T,1)="G":7\->\L\2\(T)
If sub(Str3,T,1)="H":8\->\L\2\(T)
If sub(Str3,T,1)="I":9\->\L\2\(T)
If sub(Str3,T,1)="J":10\->\L\2\(T)
If sub(Str3,T,1)="K":11\->\L\2\(T)
If sub(Str3,T,1)="L":12\->\L\2\(T)
If sub(Str3,T,1)="M":13\->\L\2\(T)
If sub(Str3,T,1)="N":14\->\L\2\(T)
If sub(Str3,T,1)="O":15\->\L\2\(T)
If sub(Str3,T,1)="P":16\->\L\2\(T)
If sub(Str3,T,1)="Q":17\->\L\2\(T)
If sub(Str3,T,1)="R":18\->\L\2\(T)
If sub(Str3,T,1)="S":19\->\L\2\(T)
If sub(Str3,T,1)="T":20\->\L\2\(T)
If sub(Str3,T,1)="U":21\->\L\2\(T)
If sub(Str3,T,1)="V":22\->\L\2\(T)
If sub(Str3,T,1)="W":23\->\L\2\(T)
If sub(Str3,T,1)="X":24\->\L\2\(T)
If sub(Str3,T,1)="Y":25\->\L\2\(T)
If sub(Str3,T,1)="Z":26\->\L\2\(T)
End
L\1\+L\2\\->\L\3\
ClrList L\1\,L\2\
" "\->\Str4
For(T,1,dim(L\3\))
L\3\(T)-1\->\L\3\(T)
If L\3\(T)>26:L\3\(T)-26\->\L\3\(T)
If L\3\(T)=1:Str4+"A"\->\Str4
If L\3\(T)=2:Str4+"B"\->\Str4
If L\3\(T)=3:Str4+"C"\->\Str4
If L\3\(T)=4:Str4+"D"\->\Str4
If L\3\(T)=5:Str4+"E"\->\Str4
If L\3\(T)=6:Str4+"F"\->\Str4
If L\3\(T)=7:Str4+"G"\->\Str4
If L\3\(T)=8:Str4+"H"\->\Str4
If L\3\(T)=9:Str4+"I"\->\Str4
If L\3\(T)=10:Str4+"J"\->\Str4
If L\3\(T)=11:Str4+"K"\->\Str4
If L\3\(T)=12:Str4+"L"\->\Str4
If L\3\(T)=13:Str4+"M"\->\Str4
If L\3\(T)=14:Str4+"N"\->\Str4
If L\3\(T)=15:Str4+"O"\->\Str4
If L\3\(T)=16:Str4+"P"\->\Str4
If L\3\(T)=17:Str4+"Q"\->\Str4
If L\3\(T)=18:Str4+"R"\->\Str4
If L\3\(T)=19:Str4+"S"\->\Str4
If L\3\(T)=20:Str4+"T"\->\Str4
If L\3\(T)=21:Str4+"U"\->\Str4
If L\3\(T)=22:Str4+"V"\->\Str4
If L\3\(T)=23:Str4+"W"\->\Str4
If L\3\(T)=24:Str4+"X"\->\Str4
If L\3\(T)=25:Str4+"Y"\->\Str4
If L\3\(T)=26:Str4+"Z"\->\Str4
End
sub(Str4,2,length(Str4)-1)\->\Str1
ClrHome
Disp Str1
DelVar Str2:DelVar Str3:DelVar Str4
Pause 
Goto S
\stop83\


\!=\ means 'not equal to'
\->\ means 'store'
L\1\ means 'list 1' and so on with 2 and 3

I made this program with both my
calculator and my computer without
anyone else, if it, for some reason,
is an exact copy of someone else's
program, this was purely coincidental.